/*
 * e-motion control http://code.google.com/p/e-motioncontrol/
 * 
 * Copyright (c) 2008-2009,
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms,
 * with or without modification, are permitted provided
 * that the following conditions are met:
 *    - Redistributions of source code must retain the
 *      above copyright notice, this list of conditions
 *      and the following disclaimer.
 *
 *    - Redistributions in binary form must reproduce the
 *      above copyright notice, this list of conditions and
 *		the following disclaimer in the documentation and/or
 *		other materials provided with the distribution.
 *    - Neither the name of the e-motioncontrol nor the names
 *       of its contributors may be used to endorse or promote
 *		products derived from this software without specific
 *		prior written permission.
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICTLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */


/** Error handler
 * @file
 */

#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include "include/errors.h"

static int print_err(const char *str)
{
  return fprintf(stderr, "Error :  %s\n", str);
}

void wiim_error(int code) {
  switch (code) {
  case SOCKET_FAILED:
    print_err("Cannot create or bind the socket");
    break;
  case CONNECTION_FAILED:
    print_err("Cannot connect the Wiimote");
    break;
  case SELECT_FAILED:
    print_err("Unable to select() the wiimote interrupt socket(s)");
    break;
  case READING_DATA_FAILED:
    print_err("Unable to receive data from wiimote.");
    break;
  case CONNECTION_LOST:
    print_err("Bluetooth appears to be disconnected.");
    break;
  case UNKNOWN_EVENT:
    print_err("Incorrect event type, can not handle it.");
    break;
  case NO_IR_SENSIVITY:
    print_err("The IR sensivity is not set.");
	break;
  case INVALID_ADDRESS:
	print_err("Invalid wiimote mac address.\n");    
	break;
  }
}
